查看原文
其他

教程|创建你的第一条 Substrate 区块链

Joshy Orndorff PolkaWorld 2020-11-11

导语

在本教程中,你将学习编译和启动预先写好的 Substrate 链,将该链用作加密货币,并使用通用的  Substrate 用户界面与之交互。

本教程针对的是以前从未接触过 Substrate 的人,希望对 Substrate 的所有内容有一个基本而快速的了解。我们不会深入探讨在 Substrate 上开发的复杂性,但希望能满足你的好奇心,让你继续这段旅程。

本教程大约需要 1 小时才能完成。我们将编译 Rust 代码,但你不需要成为 Rust 程序员来完成本指南。我们为你提供工作代码并解释如何使用它。

我们只希望你:

  • 熟悉软件开发和使用终端
  • 熟悉区块链和智能合约平台
  • 愿意学习区块链开发的前沿技术

如果你在本教程中遇到问题,我们会提供帮助!你可以创建一个新的 issue [1]或在 Riot [2]中联系我们。

你将做什么

在开始之前,我们先列出在本教程中需要做的事情:

  1. 设置你的电脑使之能在 Substrate 上开发
  2. 使用模板立即开始运行 Substrate
  3. 使用通用的用户界面与我们的区块链进行交互
  4. 在用户帐户之间进行转账

听起来很有道理吧?很好,那我们开始吧!

通常我们会教你更多关于 Substrate 区块链开发框架的知识,但是,为 Substrate 开发设置计算机可能需要一段时间。

为了节省时间,你可以先进行安装。在下一节中,所有东西都编译好之后,你将了解更多有关 Substrate 和我们正在构建的东西。

设置好你的计算机

先决条件

要在 Substrate 上开发,你的计算机需要一些先决条件来建立开发环境。

设置你的计算机可能是本教程中最困难的部分,所以不要因此而气馁。

Substrate 开发

如果你使用的是基于 Unix 的计算机(Linux、MacOS),我们创建了一个简单的一行代码来为你安装所有这些先决条件:

curl https://getsubstrate.io -sSf | bash -s -- --fast

如果在运行此脚本之前未安装 Rust,请确保在继续之前添加 restart 终端(脚本输出的最后一行中给出的命令)。

如果你想了解这个脚本的具体功能,请访问:https://getsubstrate.io

该脚本会自动安装:

  • CMake[3]
  • pkg-config[4]
  • OpenSSL[5]
  • Git[6]
  • Rust[7]

如果你使用的是 Windows,而没有 Linux 的 Windows 子系统[8],那么这个过程有点困难,不过这里[9]有个很好的文档供你参考。

编译 Substrate

先决条件安装完成后,你需要为我们的项目设置框架。Substrate 节点模板(Substrate Node Template)是在 Substrate 上开始构建的一个很好的起点。

  1. 复制 Substrate 节点模板(版本 v2.0.0-alpha.5
git clone -b v2.0.0-alpha.5 --depth 1 https://github.com/substrate-developer-hub/substrate-node-template
  1. 初始化 WebAssembly 开发环境
# Load settings into the current shell script if you can't use rustup command
source ~/.cargo/env

# Update Rust
rustup update nightly
rustup update stable

# Add Wasm target
rustup target add wasm32-unknown-unknown --toolchain nightly
  1. 为你的工作创建一个分支并编译你的 Substrate 节点
cd substrate-node-template/
git checkout -b my-first-substrate-chain
cargo build --release

根据硬件的不同,最终编译可能最多需要 25 分钟。在这段时间里,请继续阅读下面的内容,以了解更多有关 Substrate 的信息。

背景信息

在这部分内容中,我们将向你介绍 Substrate 区块链开发框架。你当前正在开发的节点模板是基于此框架构建的。

区块链的背景

区块链开发很难。

区块链网络由在点对点网络(P2P)上连接在一起的各个节点组成。节点是网络上运行区块链软件的个人计算机,它可以使一切正常工作。

要发挥作用,区块链节点需要:

  • 数据库
  • P2P 网络
  • 共识引擎
  • 交易处理
  • 状态转换函数
  • 还有更多...

这些技术跨越了计算机科学的广阔领域,因此通常需要专家团队来开发。所以,大多数区块链项目都不是从头开始开发的。相反,这些项目是从已经存在的区块链存储库中分叉出来的。例如:

  • 比特币存储库被分叉创建了:Litecoin、ZCash、Namecoin、Bitcoin Cash 等

  • 以太坊储存库被分分创建了:Quorem、POA 网络、KodakCoin、MusicCoin 等

以这种方式构建区块链具有严重的局限性,因为这些现有平台的设计并没有考虑到修改问题。

Substrate

Substrate 是一个开源、模块化和可扩展的框架,用于构建区块链。

Substrate 从一开始就进行了设计,为创新者设计和构建下一个区块链网络提供了一个灵活的框架。它提供了构建自定义区块链节点所需的所有核心组件。

Substrate 节点模板

我们以节点模板的形式提供了一个开箱即用的基于 Substrate 的节点,在你阅读时,这个模板应该正在进行编译。不做任何更改,你和你的朋友就可以共享此节点模板,并创建一个有加密货币的区块链网络和有关的一切!

我们将教你如何在 “开发” 模式下使用此节点,它允许你使用单个节点运行网络,并拥有一些有资金的预配置用户帐户。

与节点交互

现在,你的节点已经完成编译,现在开始展示所有内容是如何开箱即用的。

启动你的节点

运行以下命令启动节点:

# Purge chain cleans up any old data from running a `dev` node in the past
# You will be prompted to type `y`
./target/release/node-template purge-chain --dev

# Run your actual node in "development" mode
./target/release/node-template --dev

如果节点运行成功,你应该看到这样的内容:

$ ./target/release/node-template --dev

2020-03-11 07:42:55 Running in --dev mode, RPC CORS has been disabled.
2020-03-11 07:42:55 Substrate Node
2020-03-11 07:42:55   version 2.0.0-alpha.5-da88e4a-x86_64-linux-gnu
2020-03-11 07:42:55   by Anonymous, 2017-2020
2020-03-11 07:42:55 Chain specification: Development
2020-03-11 07:42:55 Node name: deranged-faucet-4432
2020-03-11 07:42:55 Roles: AUTHORITY
2020-03-11 07:42:55 Initializing Genesis block/state (state: 0x3e8a1c6b, header-hash: 0x1990…e24d)
...
2020-03-11 07:43:00 Imported #1 (0x857f9b4e)
2020-03-11 07:43:00 Idle (0 peers), best: #1 (0x857f9b4e), finalized #0 (0x1990…e24d), ⬇ 0 ⬆ 0
2020-03-11 07:43:05 Idle (0 peers), best: #1 (0x857f9b4e), finalized #0 (0x1990…e24d), ⬇ 0 ⬆ 0
2020-03-11 07:43:06 Starting consensus session on top of parent 0x857f7b9091f37926a67c403ef0a19fdb31b31491dbc1d2a5e70c000f23c99b4e
2020-03-11 07:43:06 Prepared block for proposing at 2 [hash: 0xf2b6f619c42824690c39c022af815fd59e7497b7ca321cf866bd9a16aed75ae7; parent_hash: 0x857f9b4e; extrinsics (1): [0x5283…d9f3]]
2020-03-11 07:43:06 Pre-sealed block for proposal at 2. Hash now 0x4db38cd7afa731a88cd0cf963de1bf728d8cee96ea5db1718b7c32121aa286a6, previously 0xf2b6f619c42824690c39c022af815fd59e7497b7ca321cf866bd9a16aed75ae7.
2020-03-11 07:43:06 Imported #2 (0x4db386a6)

如果 best: 之后的数字在增加,那说明你的区块链正在生成新的区块!

启动前端

为了与本地节点交互,我们将使用 Polkadot js Apps 用户界面,通常简称为“Apps”。尽管名称如此,但 Apps 将与任何基于 Substrate 的区块链(包括我们的区块链)一起工作,而不仅仅是波卡。

在 web 浏览器中,导航到 https://polkadot.js.org/apps。

Settings选项卡上,确保已连接到 Local Node 或 ws://127.0.0.1:9944

一些浏览器,特别是 Firefox,不会从 https 网站连接到本地节点。一个简单的解决方法是尝试另一个浏览器,比如 Chromium。另一个选项是在本地接入此接口。https://github.com/polkadot-js/apps#development

交互

选择 Accounts 选项卡,你将看到你有权访问的测试帐户。有些,像 Alice 和 Bob,已经有了资金!

你可以试着通过点击“发送”按钮将一些资金从 Alice 转到 Charlie 。

如果一切顺利,你会看到一些弹出的通知,显示“ Extrinsic Success ”,然后 Charlie 的账户余额将增加。

创建你的账户

你可以通过选择 + Add Account 按钮创建自己的帐户。它还没有任何代币,但你可以从 Alice 或任何其他已经有资金的帐户发送一些代币。只有你(和你的浏览器)知道你自己帐户的私钥,这意味着除了你之外,没有人可以转账这些代币。

下一步

这就是你创建第一个 Substrate 区块链旅程的结尾啦。

你已经启动了一个基于 Substrate 的区块链,在该链上附加了一个用户界面,并在用户之间进行了代币的转账。我们希望你能继续学习 Substrate。

下一步可能是:

  • “启动专用网络”[10] 教程中,使用更多节点去中心化你的网络。
  • Build a dApp[11] 教程中添加自定义功能。

如果你在本教程中遇到任何问题或希望提供反馈,请随时开启 GitHub issue 或联系我们的 Riot 频道。

GitHub issue :https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/issues/new

Riot:https://riot.im/app/#/room/!HzySYSaIhtyWrwiwEV:matrix.org

中文视频:搭建 Substrate 开发环境


参考链接
[1]

issue : https://github.com/substrate-developer-hub/substrate-developer-hub.github.io/issues/new

[2]

Riot : https://riot.im/app/#/room/!HzySYSaIhtyWrwiwEV:matrix.org

[3]

CMake: https://cmake.org/install/

[4]

pkg-config: https://www.freedesktop.org/wiki/Software/pkg-config/

[5]

OpenSSL: https://www.openssl.org/

[6]

Git: https://git-scm.com/downloads

[7]

Rust: https://www.rust-lang.org/tools/install

[8]

Linux 的 Windows 子系统: https://docs.microsoft.com/en-us/windows/wsl/install-win10

[9]

这里: https://substrate.dev/docs/en/overview/getting-started

[10]

“启动专用网络”: https://substrate.dev/docs/en/tutorials/start-a-private-network/

[11]

Build a dApp: https://substrate.dev/docs/en/tutorials/build-a-dapp/

[12]

https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/: https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/

原文:https://substrate.dev/docs/en/tutorials/creating-your-first-substrate-chain/[12]

编译:PolkaWorld 社区


  • 欢迎学习 Substrate: 

    https://substrate.dev/

  • 关注 Substrate 进展:

    https://github.com/paritytech/substrate

  • 关注 Polkadot 进展:

    https://github.com/paritytech/polkadot

  • 申请 Bootcamp: 

    https://bootcamp.web3.foundation/

更多内容:


Substrate 概览|Substrate 的三种使用方式

Substrate VS Smart Contracts 1

Substrate 入门 - Runtime 的 Wasm 与 native(九)

Web3 基金会「开放资助计划」来了!全程公开透明,最高 3 万美金


扫码关注公众号,回复 “1” 加入波卡群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存